// 任意参数的之和
function sum() {
  var sum = 0;
  for (var i = 0; i < arguments.length; i++) {
    sum += arguments[i];
  }
  return sum;
}

// 求任意数的最大值
function max() {
  var max = arguments[0];
  for (var i = 1; i < arguments.length; i++) {
    if (arguments[i] > max) {
      max = arguments[i];
    }
  }
  return max;
}

// 求任意数的最小值
function min() {
  var min = arguments[0];
  for (var i = 1; i < arguments.length; i++) {
    if (arguments[i] < min){
      min = arguments[i];
    }
  }
  return min;
}

//获取随机数
function randomNumber(min, max) {
  var num;
  if (min > max) {
      num = parseInt(Math.random() * (min - max + 1) + max);
  } else {
      num = parseInt(Math.random() * (max - min + 1) + min);
  }
  return num;
}

// 封装一随机颜色
function randomColor(){
  var a = parseInt(Math.random()*256);
  var b = parseInt(Math.random()*256);
  var c = parseInt(Math.random()*256);
  return `rgb(${a},${b},${c})`
};


// 封装一个时间格式化函数
function format(d, f) {
  var f = f || "-";
  var years = d.getFullYear();
  var month = d.getMonth() + 1;

  month = month >= 10 ? month : "0" + month;
  var date = d.getDate();
  date = date >= 10 ? date : "0" + date;

  var hours = d.getHours();
  hours = hours >= 10 ? hours : "0" + hours;

  var min = d.getMinutes();
  min = min >= 10 ? min : "0" + min;

  var sec = d.getSeconds();
  sec = sec >= 10 ? sec : "0" + sec;
  // console.log(years, month, date, hours, min, sec);
  return `${years}${f}${month}${f}${date} ${hours}:${min}:${sec}`;
}



// 获取样式的方法
function getStyle(ele, attr) {
  // 兼容的获取方法
  var style;
  if (window.getComputedStyle) {
      style = window.getComputedStyle(ele)[attr];
  } else {
      style = ele.currentStyle[attr];
  }

  return style;
}


// 封装一个 事件监听的函数
// 参数：事件源  事件类型  回调函数（事件处理函数）
function addEvent(ele, type, callback) {
  if (ele.addEventListener) {
      ele.addEventListener(type, callback);
  } else {
      ele.attachEvent("on" + type, callback);
  }
}


// 动画函数
function move(ele, obj, callback) {
  let index = 0;
  for (let attr in obj) {
      index++;
      clearInterval(ele[attr]);
      ele[attr] = setInterval(function () {
          let left;
          // 如果是透明度的时候 不需要取整的
          // 并且把 透明度的取值乘以100
          if (attr == "opacity") {
              left = getStyle(ele, attr) * 100;
          } else {
              left = parseInt(getStyle(ele, attr));
          }
          let x = (obj[attr] - left) / 10;
          // 0.9==》1   -0.9==>-1     -0.9 向上取整为0
          let speed = x > 0 ? Math.ceil(x) : Math.floor(x);

          left += speed;
          // console.log(left);

          // 如果是改变 opacity属性的值的时候 不需要加单位
          if (attr == "opacity") {
              // 因为声明的透明度的取值 乘以100 ，在设置的时候 需要除以100
              ele.style[attr] = left / 100;
          } else {
              ele.style[attr] = left + "px";
          }
          if (left == obj[attr]) {
              clearInterval(ele[attr]);
              index--;
              if (index == 0) {
                  callback && callback();
              }
          }
      }, 30);
  }
}


//获取地址栏的参数
function getUrlParam(name) {
  var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); // 构造一个含有目标参数的正则表达式对象
  var r = window.location.search.substr(1).match(reg); // 匹配目标参数
  if (r != null) return unescape(r[2]);
  return null;
}



